package hihocoder;
import java.util.Scanner;

/**
 * 
 */

/**如果一个字符串恰好包含2个'h'、1个'i'和1个'o'，我们就称这个字符串是hiho字符串。  

例如"oihateher"、"hugeinputhugeoutput"都是hiho字符串。

现在给定一个只包含小写字母的字符串S，小Hi想知道S的所有子串中，最短的hiho字符串是哪个。
 * 找到S的所有子串中，最短的hiho字符串是哪个，输出该子串的长度。如果S的子串中没有hiho字符串，输出-1。
 * @author zhongfang
 *思路是找到包含两个h一个i一个o的最短字符串
 */
public class hihoString {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		while (scanner.hasNext()) {
			String string=scanner.nextLine();
			int[] count=new int[3];
			char[] chars=new char[]{'h','i','o'};
			int[] standardCount=new int[]{2,1,1};
			int startIndex=0;
			int minLength=string.length();
			for (int i = 0; i < string.length(); i++) {
				char c=string.charAt(i);
				for (int j = 0; j < chars.length; j++) {
					if(c==chars[j]){
						count[j]++;
						if(count[j]>standardCount[j]){//如果当前刚好和第一个相等，并且超过了标准个数，则第一个指针可以往后移
							if(string.charAt(startIndex)==c){
								do{//可以向右移动，直到碰到第一个ioh
									startIndex++;
								}while (!(string.charAt(startIndex)==chars[0]||string.charAt(startIndex)==chars[1]||string.charAt(startIndex)==chars[2]));
							}
							count[j]--;
						}
						//如果三种字符的个数都满足要求，则可以进行长度比较
						boolean check=true;
						for (int k = 0; k < standardCount.length; k++) {
							if(count[k]!=standardCount[k]){
								check=false;
								break;
							}
						}
						if(check&&i-startIndex+1<minLength){
							minLength=i-startIndex+1;
						}
						break;
					}
				}
			}
			System.out.println(minLength==string.length()?-1:minLength);
		}
	}
}
